package com.hebeu.device.pojo;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DPayoffExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DPayoffExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andPayoffIdIsNull() {
            addCriterion("payoff_id is null");
            return (Criteria) this;
        }

        public Criteria andPayoffIdIsNotNull() {
            addCriterion("payoff_id is not null");
            return (Criteria) this;
        }

        public Criteria andPayoffIdEqualTo(Integer value) {
            addCriterion("payoff_id =", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdNotEqualTo(Integer value) {
            addCriterion("payoff_id <>", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdGreaterThan(Integer value) {
            addCriterion("payoff_id >", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("payoff_id >=", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdLessThan(Integer value) {
            addCriterion("payoff_id <", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdLessThanOrEqualTo(Integer value) {
            addCriterion("payoff_id <=", value, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdIn(List<Integer> values) {
            addCriterion("payoff_id in", values, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdNotIn(List<Integer> values) {
            addCriterion("payoff_id not in", values, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdBetween(Integer value1, Integer value2) {
            addCriterion("payoff_id between", value1, value2, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPayoffIdNotBetween(Integer value1, Integer value2) {
            addCriterion("payoff_id not between", value1, value2, "payoffId");
            return (Criteria) this;
        }

        public Criteria andPersonPayIsNull() {
            addCriterion("person_pay is null");
            return (Criteria) this;
        }

        public Criteria andPersonPayIsNotNull() {
            addCriterion("person_pay is not null");
            return (Criteria) this;
        }

        public Criteria andPersonPayEqualTo(Double value) {
            addCriterion("person_pay =", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayNotEqualTo(Double value) {
            addCriterion("person_pay <>", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayGreaterThan(Double value) {
            addCriterion("person_pay >", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayGreaterThanOrEqualTo(Double value) {
            addCriterion("person_pay >=", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayLessThan(Double value) {
            addCriterion("person_pay <", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayLessThanOrEqualTo(Double value) {
            addCriterion("person_pay <=", value, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayIn(List<Double> values) {
            addCriterion("person_pay in", values, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayNotIn(List<Double> values) {
            addCriterion("person_pay not in", values, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayBetween(Double value1, Double value2) {
            addCriterion("person_pay between", value1, value2, "personPay");
            return (Criteria) this;
        }

        public Criteria andPersonPayNotBetween(Double value1, Double value2) {
            addCriterion("person_pay not between", value1, value2, "personPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayIsNull() {
            addCriterion("mati_pay is null");
            return (Criteria) this;
        }

        public Criteria andMatiPayIsNotNull() {
            addCriterion("mati_pay is not null");
            return (Criteria) this;
        }

        public Criteria andMatiPayEqualTo(Double value) {
            addCriterion("mati_pay =", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayNotEqualTo(Double value) {
            addCriterion("mati_pay <>", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayGreaterThan(Double value) {
            addCriterion("mati_pay >", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayGreaterThanOrEqualTo(Double value) {
            addCriterion("mati_pay >=", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayLessThan(Double value) {
            addCriterion("mati_pay <", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayLessThanOrEqualTo(Double value) {
            addCriterion("mati_pay <=", value, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayIn(List<Double> values) {
            addCriterion("mati_pay in", values, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayNotIn(List<Double> values) {
            addCriterion("mati_pay not in", values, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayBetween(Double value1, Double value2) {
            addCriterion("mati_pay between", value1, value2, "matiPay");
            return (Criteria) this;
        }

        public Criteria andMatiPayNotBetween(Double value1, Double value2) {
            addCriterion("mati_pay not between", value1, value2, "matiPay");
            return (Criteria) this;
        }

        public Criteria andPartPayIsNull() {
            addCriterion("part_pay is null");
            return (Criteria) this;
        }

        public Criteria andPartPayIsNotNull() {
            addCriterion("part_pay is not null");
            return (Criteria) this;
        }

        public Criteria andPartPayEqualTo(Double value) {
            addCriterion("part_pay =", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayNotEqualTo(Double value) {
            addCriterion("part_pay <>", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayGreaterThan(Double value) {
            addCriterion("part_pay >", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayGreaterThanOrEqualTo(Double value) {
            addCriterion("part_pay >=", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayLessThan(Double value) {
            addCriterion("part_pay <", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayLessThanOrEqualTo(Double value) {
            addCriterion("part_pay <=", value, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayIn(List<Double> values) {
            addCriterion("part_pay in", values, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayNotIn(List<Double> values) {
            addCriterion("part_pay not in", values, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayBetween(Double value1, Double value2) {
            addCriterion("part_pay between", value1, value2, "partPay");
            return (Criteria) this;
        }

        public Criteria andPartPayNotBetween(Double value1, Double value2) {
            addCriterion("part_pay not between", value1, value2, "partPay");
            return (Criteria) this;
        }

        public Criteria andServiceIdIsNull() {
            addCriterion("service_id is null");
            return (Criteria) this;
        }

        public Criteria andServiceIdIsNotNull() {
            addCriterion("service_id is not null");
            return (Criteria) this;
        }

        public Criteria andServiceIdEqualTo(Integer value) {
            addCriterion("service_id =", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdNotEqualTo(Integer value) {
            addCriterion("service_id <>", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdGreaterThan(Integer value) {
            addCriterion("service_id >", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("service_id >=", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdLessThan(Integer value) {
            addCriterion("service_id <", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdLessThanOrEqualTo(Integer value) {
            addCriterion("service_id <=", value, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdIn(List<Integer> values) {
            addCriterion("service_id in", values, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdNotIn(List<Integer> values) {
            addCriterion("service_id not in", values, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdBetween(Integer value1, Integer value2) {
            addCriterion("service_id between", value1, value2, "serviceId");
            return (Criteria) this;
        }

        public Criteria andServiceIdNotBetween(Integer value1, Integer value2) {
            addCriterion("service_id not between", value1, value2, "serviceId");
            return (Criteria) this;
        }

        public Criteria andNoteIsNull() {
            addCriterion("note is null");
            return (Criteria) this;
        }

        public Criteria andNoteIsNotNull() {
            addCriterion("note is not null");
            return (Criteria) this;
        }

        public Criteria andNoteEqualTo(String value) {
            addCriterion("note =", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteNotEqualTo(String value) {
            addCriterion("note <>", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteGreaterThan(String value) {
            addCriterion("note >", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteGreaterThanOrEqualTo(String value) {
            addCriterion("note >=", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteLessThan(String value) {
            addCriterion("note <", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteLessThanOrEqualTo(String value) {
            addCriterion("note <=", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteLike(String value) {
            addCriterion("note like", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteNotLike(String value) {
            addCriterion("note not like", value, "note");
            return (Criteria) this;
        }

        public Criteria andNoteIn(List<String> values) {
            addCriterion("note in", values, "note");
            return (Criteria) this;
        }

        public Criteria andNoteNotIn(List<String> values) {
            addCriterion("note not in", values, "note");
            return (Criteria) this;
        }

        public Criteria andNoteBetween(String value1, String value2) {
            addCriterion("note between", value1, value2, "note");
            return (Criteria) this;
        }

        public Criteria andNoteNotBetween(String value1, String value2) {
            addCriterion("note not between", value1, value2, "note");
            return (Criteria) this;
        }

        public Criteria andMainPermitIsNull() {
            addCriterion("main_permit is null");
            return (Criteria) this;
        }

        public Criteria andMainPermitIsNotNull() {
            addCriterion("main_permit is not null");
            return (Criteria) this;
        }

        public Criteria andMainPermitEqualTo(String value) {
            addCriterion("main_permit =", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitNotEqualTo(String value) {
            addCriterion("main_permit <>", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitGreaterThan(String value) {
            addCriterion("main_permit >", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitGreaterThanOrEqualTo(String value) {
            addCriterion("main_permit >=", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitLessThan(String value) {
            addCriterion("main_permit <", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitLessThanOrEqualTo(String value) {
            addCriterion("main_permit <=", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitLike(String value) {
            addCriterion("main_permit like", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitNotLike(String value) {
            addCriterion("main_permit not like", value, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitIn(List<String> values) {
            addCriterion("main_permit in", values, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitNotIn(List<String> values) {
            addCriterion("main_permit not in", values, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitBetween(String value1, String value2) {
            addCriterion("main_permit between", value1, value2, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andMainPermitNotBetween(String value1, String value2) {
            addCriterion("main_permit not between", value1, value2, "mainPermit");
            return (Criteria) this;
        }

        public Criteria andEstimateIsNull() {
            addCriterion("estimate is null");
            return (Criteria) this;
        }

        public Criteria andEstimateIsNotNull() {
            addCriterion("estimate is not null");
            return (Criteria) this;
        }

        public Criteria andEstimateEqualTo(Double value) {
            addCriterion("estimate =", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateNotEqualTo(Double value) {
            addCriterion("estimate <>", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateGreaterThan(Double value) {
            addCriterion("estimate >", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateGreaterThanOrEqualTo(Double value) {
            addCriterion("estimate >=", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateLessThan(Double value) {
            addCriterion("estimate <", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateLessThanOrEqualTo(Double value) {
            addCriterion("estimate <=", value, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateIn(List<Double> values) {
            addCriterion("estimate in", values, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateNotIn(List<Double> values) {
            addCriterion("estimate not in", values, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateBetween(Double value1, Double value2) {
            addCriterion("estimate between", value1, value2, "estimate");
            return (Criteria) this;
        }

        public Criteria andEstimateNotBetween(Double value1, Double value2) {
            addCriterion("estimate not between", value1, value2, "estimate");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("start_time is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("start_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(Date value) {
            addCriterion("start_time =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(Date value) {
            addCriterion("start_time <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(Date value) {
            addCriterion("start_time >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("start_time >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(Date value) {
            addCriterion("start_time <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("start_time <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<Date> values) {
            addCriterion("start_time in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<Date> values) {
            addCriterion("start_time not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(Date value1, Date value2) {
            addCriterion("start_time between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("start_time not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andCNameIsNull() {
            addCriterion("c_name is null");
            return (Criteria) this;
        }

        public Criteria andCNameIsNotNull() {
            addCriterion("c_name is not null");
            return (Criteria) this;
        }

        public Criteria andCNameEqualTo(String value) {
            addCriterion("c_name =", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameNotEqualTo(String value) {
            addCriterion("c_name <>", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameGreaterThan(String value) {
            addCriterion("c_name >", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameGreaterThanOrEqualTo(String value) {
            addCriterion("c_name >=", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameLessThan(String value) {
            addCriterion("c_name <", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameLessThanOrEqualTo(String value) {
            addCriterion("c_name <=", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameLike(String value) {
            addCriterion("c_name like", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameNotLike(String value) {
            addCriterion("c_name not like", value, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameIn(List<String> values) {
            addCriterion("c_name in", values, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameNotIn(List<String> values) {
            addCriterion("c_name not in", values, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameBetween(String value1, String value2) {
            addCriterion("c_name between", value1, value2, "cName");
            return (Criteria) this;
        }

        public Criteria andCNameNotBetween(String value1, String value2) {
            addCriterion("c_name not between", value1, value2, "cName");
            return (Criteria) this;
        }

        public Criteria andTotalIsNull() {
            addCriterion("total is null");
            return (Criteria) this;
        }

        public Criteria andTotalIsNotNull() {
            addCriterion("total is not null");
            return (Criteria) this;
        }

        public Criteria andTotalEqualTo(Double value) {
            addCriterion("total =", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotEqualTo(Double value) {
            addCriterion("total <>", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThan(Double value) {
            addCriterion("total >", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalGreaterThanOrEqualTo(Double value) {
            addCriterion("total >=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThan(Double value) {
            addCriterion("total <", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalLessThanOrEqualTo(Double value) {
            addCriterion("total <=", value, "total");
            return (Criteria) this;
        }

        public Criteria andTotalIn(List<Double> values) {
            addCriterion("total in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotIn(List<Double> values) {
            addCriterion("total not in", values, "total");
            return (Criteria) this;
        }

        public Criteria andTotalBetween(Double value1, Double value2) {
            addCriterion("total between", value1, value2, "total");
            return (Criteria) this;
        }

        public Criteria andTotalNotBetween(Double value1, Double value2) {
            addCriterion("total not between", value1, value2, "total");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveIsNull() {
            addCriterion("is_effective is null");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveIsNotNull() {
            addCriterion("is_effective is not null");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveEqualTo(Integer value) {
            addCriterion("is_effective =", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveNotEqualTo(Integer value) {
            addCriterion("is_effective <>", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveGreaterThan(Integer value) {
            addCriterion("is_effective >", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_effective >=", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveLessThan(Integer value) {
            addCriterion("is_effective <", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveLessThanOrEqualTo(Integer value) {
            addCriterion("is_effective <=", value, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveIn(List<Integer> values) {
            addCriterion("is_effective in", values, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveNotIn(List<Integer> values) {
            addCriterion("is_effective not in", values, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveBetween(Integer value1, Integer value2) {
            addCriterion("is_effective between", value1, value2, "isEffective");
            return (Criteria) this;
        }

        public Criteria andIsEffectiveNotBetween(Integer value1, Integer value2) {
            addCriterion("is_effective not between", value1, value2, "isEffective");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}